// utils/request.js
// import {
//     baseUrl
// } from '@/config/index.js'; // 引入基础 URL，需提前在 config 文件夹下创建 index.js 文件并定义 baseUrl

let baseUrl = process.env.VUE_APP_BASE_URL

const loginUrl = '/api/login';
const registerUrl = '/api/register';
const wxLoginUrl = '/api/user/getLoginInfo';


// 封装请求方法
const request = (options) => {
    return new Promise((resolve, reject) => {

        // 获取缓存中的 token
        const token = uni.getStorageSync('token');

        // 判断当前请求是否为登录或注册接口
        const isLoginOrRegister = options.url === loginUrl || options.url === registerUrl || options.url === wxLoginUrl;

        // 如果 token 为空且不是登录或注册接口，跳转到登录页面
        console.log('当前token',token, options.url, loginUrl)
        console.log('是否登录判断',!token && !isLoginOrRegister)
        if (!token && !isLoginOrRegister) {
            console.log('跳转登录页面！！')
            uni.navigateTo({
                url: '/pages/login/wx' // 登录页面的路径，根据实际情况修改
            });
            return;
        }

        // 显示加载提示
        uni.showLoading({
            title: '加载中...'
        });

        uni.request({
            url: baseUrl + options.url, // 拼接基础 URL 和请求路径
            method: options.method || 'GET', // 默认请求方法为 GET
            data: options.data || {}, // 请求数据
            sslVerify: false,
            header: {
                'Content-Type': 'application/json', // 请求头，可根据后端需求调整
                // 若需要携带 token，可在此添加
                // ...(!isLoginOrRegister && token ? { 'authorization': token } : {}) 
            },
            success: (res) => {
                // 隐藏加载提示
                uni.hideLoading();
                if (res.statusCode === 200) {
                    resolve(res.data); // 请求成功，返回数据
                } else {
                    reject(new Error(`请求失败，状态码：${res.statusCode}`)); // 请求失败，抛出错误
                }
            },
            fail: (err) => {
                // 隐藏加载提示
                uni.hideLoading();
                reject(err); // 请求出错，抛出错误
            }
        });
    });
};

export default request;